229 research outputs found

    Two for the Price of One: Lifting Separation Logic Assertions

    Full text link
    Recently, data abstraction has been studied in the context of separation logic, with noticeable practical successes: the developed logics have enabled clean proofs of tricky challenging programs, such as subject-observer patterns, and they have become the basis of efficient verification tools for Java (jStar), C (VeriFast) and Hoare Type Theory (Ynot). In this paper, we give a new semantic analysis of such logic-based approaches using Reynolds's relational parametricity. The core of the analysis is our lifting theorems, which give a sound and complete condition for when a true implication between assertions in the standard interpretation entails that the same implication holds in a relational interpretation. Using these theorems, we provide an algorithm for identifying abstraction-respecting client-side proofs; the proofs ensure that clients cannot distinguish two appropriately-related module implementations

    New Cyclic Voltammetry Method for Examining Phase Transitions: Simulated Results

    Full text link
    We propose a new experimental technique for cyclic voltammetry, based on the first-order reversal curve (FORC) method for analysis of systems undergoing hysteresis. The advantages of this electrochemical FORC (EC-FORC) technique are demonstrated by applying it to dynamical models of electrochemical adsorption. The method can not only differentiate between discontinuous and continuous phase transitions, but can also quite accurately recover equilibrium behavior from dynamic analysis of systems with a continuous phase transition. Experimental data for EC-FORC analysis could easily be obtained by simple reprogramming of a potentiostat designed for conventional cyclic-voltammetry experiments.Comment: 18 pages, 7 figures, accepted for publication in Journal of Electroanalytical Chemistry, changes in title, abstract and figure

    Hindley-Milner Elaboration in Applicative Style

    Get PDF
    International audienceType inference—the problem of determining whether a program is well-typed—is well-understood. In contrast, elaboration—the task of constructing an explicitly-typed representation of the program— seems to have received relatively little attention, even though, in a non-local type inference system, it is non-trivial. We show that the constraint-based presentation of Hindley-Milner type inference can be extended to deal with elaboration, while preserving its elegance. This involves introducing a new notion of "constraint with a value", which forms an applicative functor

    Constraint solving in non-permutative nominal abstract syntax

    Full text link
    Nominal abstract syntax is a popular first-order technique for encoding, and reasoning about, abstract syntax involving binders. Many of its applications involve constraint solving. The most commonly used constraint solving algorithm over nominal abstract syntax is the Urban-Pitts-Gabbay nominal unification algorithm, which is well-behaved, has a well-developed theory and is applicable in many cases. However, certain problems require a constraint solver which respects the equivariance property of nominal logic, such as Cheney's equivariant unification algorithm. This is more powerful but is more complicated and computationally hard. In this paper we present a novel algorithm for solving constraints over a simple variant of nominal abstract syntax which we call non-permutative. This constraint problem has similar complexity to equivariant unification but without many of the additional complications of the equivariant unification term language. We prove our algorithm correct, paying particular attention to issues of termination, and present an explicit translation of name-name equivariant unification problems into non-permutative constraints
    • …
    corecore